home *** CD-ROM | disk | FTP | other *** search
/ Directorty Opus 5 - Magellan 2 / Opus 5 - Magellan 2.iso / Extras / D51_NUSource / Source / DOpusFuncs / DirToDest.s < prev    next >
Text File  |  1995-12-27  |  2KB  |  48 lines

  1. ***************************************************************************************
  2. * DirToDest subroutine for DOpusFuncs.s                              *
  3. ***************************************************************************************
  4. DirToDest
  5.     Tst.l    DirToDest_S(a5)
  6.     Bne.s    DirToDest_DoIt
  7.     RTS
  8. DirToDest_DoIt
  9.     Sub.l    d0,d0            Abort if there isn't a source lister.
  10.     Bsr    GetSourceHandle        Get the source lister's handle -> Source_Handle
  11.     Moveq    #1,d0            Open new dest if one doesn't exist.
  12.     Bsr    GetDestHandle        Get the dest lister's handle -> Dest_Handle
  13. ;-------------------------------------------------------------------------------------;
  14. ; Build full path of first selected directory in the source lister.              ;
  15. ;-------------------------------------------------------------------------------------;
  16.     Lea    Source_Handle(a5),a0    Handle to get the path of.
  17.     Lea    Buffer1(a5),a1        Buffer to write path into.
  18.     Move.w    #Buffer1Len,d7        Size of above buffer.
  19.     Bsr    GetListerPath        Path -> buffer.
  20.  
  21.     Lea    Source_Handle(a5),a0
  22.     Lea    DirName1Buffer(a5),a1    -._ Write directory name
  23.     Move.w    #DirName1BufferLen,d7    -'  into second buffer.
  24.     Bsr    GetFirstSelDir        First Selected Directory -> buffer.
  25.  
  26. ;;;;;;;    Now to join the two halves of the full path together.
  27.  
  28.     Lea    Buffer1(a5),a0        Fist half, and buffer for joined string.
  29.     Lea    DirName1Buffer(a5),a1    Second half of string.
  30.     Move.w    #Buffer1Len,d7        Length of (a0) buffer.
  31.     Bsr    Join_NT            Join the dirname to its path.
  32. ;;;;;;;    Buffer_Overflow handled automatically.
  33. ;-------------------------------------------------------------------------------------;
  34.     Sub.l    d0,d0            Deselect...
  35.     Lea    DirName1Buffer(a5),a1    ...the dir-entry...
  36.     Lea    Source_Handle(a5),a0    ...from the source lister.
  37.     Bsr    ListerSelect
  38.  
  39.     Sub.l    d0,d0            Normal refresh (not "full")
  40.     Lea    Source_Handle(a5),a0    -._ Refresh the
  41.     Bsr    ListerRefresh        -'  Source lister.
  42. ;-------------------------------------------------------------------------------------;
  43.     Lea    Dest_Handle(a5),a0    Handle to read path into.
  44.     Lea    Buffer1(a5),a1        Path to read.
  45.     Sub.l    d0,d0            Don't force into current path buffer.
  46.     Bra    ReadListerPath        Read the path into the destination lister.
  47. ;;;;;;;    RTS for us.
  48.